package org.resort.service;

import org.resort.entity.*;

import java.util.Date;
import java.util.List;

/**
 * @Author 郭文虎
 * <p>
 * 客房服务
 */
public interface RoomService {
    /**
     * 获取所有房间订单集合
     */
    List<RoomOrder> getAll();

    /**
     * 获取所有退房信息
     */
    List<ExitRoom> getAllExits();

    /**
     * 新增房间信息订单表
     *
     * @param startdate
     * @param enddate
     * @param memberid
     * @param employeeid
     * @param stateid
     * @param day
     * @return
     */
    int addRoomOrder(Date startdate, Date enddate, int memberid, int employeeid, int stateid, Double day);

    /**
     * 暂时没有到的删除
     *
     * @param id
     * @return
     */
    int delectRoomOrder(int id);


    RoomOrder getRoomOrderById(int id);

    /**
     * 修改一条房间订单信息
     *
     * @param id
     * @param startdate
     * @param enddate
     * @param memberid
     * @param employeeid
     * @param stateid
     * @param day
     * @return
     */
    int updateRoomOrder(int id, Date startdate, Date enddate, int memberid, int employeeid, int stateid, Double day);

    /**
     * 查询所有房间续费信息
     *
     * @return
     */
    List<AppendRoom> getAllAppendRoom();

    /**
     * 查询客房类型
     * 所有类型描述
     *
     * @return
     */
    List<RoomType> getAllType();

    /**
     * 获取所有客房管理
     *
     * @return
     */
    List<Room> getRoom();

    /**
     * 获取所有订单明细
     *
     * @return
     */
    List<RoomOrderInfo> getRoomOrderInfo();

    /**
     * 添加一条退房信息
     *
     * @return
     */
    int AddExitRoom(int roomorderid, Date date, int dustmanid);

    /**
     * 添加一条续费信息
     *
     * @param roomorderid
     * @param appenddate
     * @return
     */
    int getAddAppentRoom(int roomorderid, Date appenddate);

    /**
     * 添加一条客房类型信息
     *
     * @return
     */
    int AddRoomType(String name, String descriptor);

    int addRoom(String name, int typeid, int stateid);

    int addroomorderinfo(int roomid, int roomorderid);


    /**
     * 修改一条退房信息
     *
     * @return
     */
    int updateExitRoom(int id, int roomorderid, Date date, int dustmanid);

    /**
     * 打开模态框之前
     * 根据Id查询到所有信息
     *
     * @param id
     * @return
     */
    ExitRoom getExitRoomById(int id);

    /**
     * 打开模态框之前
     * 根据ID查询所有信息
     *
     * @param id
     * @return
     */
    AppendRoom getAppendRoomByid(int id);

    /**
     * 修改续费房间信息
     *
     * @param id
     * @param roomorderid
     * @param appenddate
     * @return
     */
    int updateAppendRoom(int id, int roomorderid, Date appenddate);

    /**
     * 根据状态查询房间订单
     *
     * @param stateName 状态名称
     * @return 满足条件的房间订单集合
     */
    List<RoomOrder> getPartOrderByState(String stateName);

    /**
     * 获取所有清洁工
     *
     * @return 所有清洁工集合
     */
    List<Employee> getAllDustman();

   /* RoomType getAllRoomType();*/
}